-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

=============================================================================
FreeBSD-SA-21:07.openssl                                    Security Advisory
                                                          The FreeBSD Project

Topic:          Multiple vulnerabilities in OpenSSL

Category:       contrib
Module:         openssl
Announced:      2021-03-25
Affects:        FreeBSD 12.2 and later
Corrected:      2021-03-25 15:45:19 UTC (stable/13, 13.0-STABLE)
                2021-03-25 16:25:06 UTC (releng/13.0, 13.0-RC3-p1)
                2021-03-25 17:14:46 UTC (stable/12, 12.2-STABLE)
                2021-03-25 23:45:45 UTC (releng/12.2, 12.2-RELEASE-p5)
CVE Name:       CVE-2021-3449, CVE-2021-3450

For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit <URL:https://security.FreeBSD.org/>.

I.   Background

FreeBSD includes software from the OpenSSL Project.  The OpenSSL Project is a
collaborative effort to develop a robust, commercial-grade, full-featured
Open Source toolkit for the Transport Layer Security (TLS) protocol.  It is
also a general-purpose cryptography library.

II.  Problem Description

This advisory covers two distinct OpenSSL issues:

The X509_V_FLAG_X509_STRICT flag enables additional security checks of the
certificates present in a certificate chain.  It is not set by default.
Starting from OpenSSL version 1.1.1h a check to disallow certificates in the
chain that have explicitly encoded elliptic curve parameters was added as an
additional strict check.  An error in the implementation of this check meant
that the result of a previous check to confirm that certificates in the chain
are valid CA certificates was overwritten. This effectively bypasses the
check that non-CA certificates must not be able to issue other certificates.
[CVE-2021-3450]

A TLSv1.2 renegotiation ClientHello message sent to a TLS server that omits
the signature_algorithms extension (where it was present in the initial
ClientHello), but includes a signature_algorithms_cert extension results in a
NULL pointer dereference in the server. [CVE-2021-3449]

III. Impact

The X509_V_FLAG_X509_STRICT issue can result in a bypass of the check that
non-CA certificates must not be able to issue other certificates.

The renegotiation issue can result in a crash and a denial of service attack.

IV.  Workaround

For the X509_V_FLAG_X509_STRICT issue, no workaround is available, but
software that doesn't explicitly set the X509_V_FLAG_X509_STRICT flag is
unaffected.

For the renegotiation issue, either turning off TLSv1.2 (as TLSv1.3 is
unaffected) or turning off renegotiation on the TLS server mitigates the
issue.

V.   Solution

Upgrade your vulnerable system to a supported FreeBSD stable or
release / security branch (releng) dated after the correction date.

Perform one of the following:

1) To update your vulnerable system via a binary patch:

Systems running a RELEASE version of FreeBSD on the i386 or amd64
platforms can be updated via the freebsd-update(8) utility:

# freebsd-update fetch
# freebsd-update install
# <restart any daemons that use the library>

2) To update your vulnerable system via a source code patch:

The following patches have been verified to apply to the applicable
FreeBSD release branches.

a) Download the relevant patch from the location below, and verify the
detached PGP signature using your PGP utility.

[FreeBSD 13.x]
# fetch https://security.FreeBSD.org/patches/SA-21:07/openssl-13.patch
# fetch https://security.FreeBSD.org/patches/SA-21:07/openssl-13.patch.asc
# gpg --verify openssl-13.patch.asc

[FreeBSD 12.x]
# fetch https://security.FreeBSD.org/patches/SA-21:07/openssl-12.patch
# fetch https://security.FreeBSD.org/patches/SA-21:07/openssl-12.patch.asc
# gpg --verify openssl-12.patch.asc

b) Apply the patch.  Execute the following commands as root:

# cd /usr/src
# patch < /path/to/patch

c) Recompile the operating system using buildworld and installworld as
described in <URL:https://www.FreeBSD.org/handbook/makeworld.html>.

Restart all daemons that use the library, or reboot the system.

VI.  Correction details

The following list contains the correction revision numbers for each
affected branch.

Branch/path                                                      Revision
- -------------------------------------------------------------------------
stable/13/                       b6c1fdcdf5033d20c61cc77d66f58f31cc65e2ba
releng/13.0/                     7d3f5a19f455e0e3fb17ac3f9af288e8c7fffc15
stable/12/                                                        r369521
releng/12.2/                                                      r369523
- -------------------------------------------------------------------------

[FreeBSD 13.x]
To see which files were modified by a particular revision, run the following
command in a checked out git repository, replacing NNNNNN with the revision
hash:

# git show --stat NNNNNN

Or visit the following URL, replace NNNNNN with the revision hash:

<URL:https://cgit.freebsd.org/src/commit/?id=NNNNNN>

[FreeBSD 12.x]
To see which files were modified by a particular revision, run the
following command, replacing NNNNNN with the revision number, on a
machine with Subversion installed:

# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base

Or visit the following URL, replacing NNNNNN with the revision number:

<URL:https://svnweb.freebsd.org/base?view=revision&revision=NNNNNN>

VII. References

<URL:https://www.openssl.org/news/secadv/20210325.txt>

<URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3449>
<URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3450>

The latest revision of this advisory is available at
<URL:https://security.FreeBSD.org/advisories/FreeBSD-SA-21:07.openssl.asc>
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAmBdIi4ACgkQ05eS9J6n
5cJ3lRAAgeIfMDB04FRSVkOr4/GL5hAHwUmTfxJU2oPFJMELYD3NbVJR51fsXuuV
bHf1X9xq9jlYLyoLNpG89g1/jVYBPikZl3BraIm8/Rxp3/PeYEbkJKoaVaqdV8Lg
fQURad6z3cFSFTiZXuDaSvcXzuT5X/0U+UFncSsQJ2oF6YqWtAQzilTyti7mWxDR
/j0pS10GDmiEbHI/XVt683rNPhlzvha+npzpLhY+PFUQ4gwUQJrJVwoYHbPYEV2M
KngxHQ/P1u3jBnAtreEbfCEOfQYmhj7mNPMUl4KWRTvPsczTVohx4X96zi+rXgBw
RqNntzhLsRYsKGP4xgRmuIQjNA+udctCjrz1vDioZkG8YOYBWK9ygr7OwEyRWYar
65kykuQhKmqGqCx+r/rw7WzxwkJH+9fNKkQ+27mv7ibfqS8yD+CfELb+7aepuxGj
r8o2wLk+hfWttCV2fN3GIPhYAoU3UlvNWIMvxJXP8KL9Hf5JCte2ePKzVFLoYsQK
rdizxBhgngbWEISghZdmm2Qx4vG714z2bkmOjRn3muvZ5B2o9xP45Auj7nA3hZN1
ET3jSWJHWutZds5wWlHfL7m4xr39D6BR/+6F1cmgmKr5O5YNSGWYEIqnh2G65KrM
ULNSgrlOfDr4oodovCXeRxXOplINMFNU4b4OpgyIQNvGysyLle0=
=+CMP
-----END PGP SIGNATURE-----
